The present invention relates to data processing by digital computer, and more particularly to rendering application user interfaces.
Some applications implement user interfaces (UIs) in a client program running in a client-server architecture, e.g., a Web browser. The UIs typically include controls operable by a user to interact with the applications. Controls can include buttons, menus, pull-down menus, dialog boxes, scroll bars, and any other controls that enable the user to view application data, invoke application functionality, and otherwise interact with an application. Each control has an associated control state, and the application has an associated UI state. The control states and the UI state can change based on user interaction. A visual representation of the application can be generated by rendering the UI state of the application in a client program running in a client-server architecture, e.g., a Web browser. The process of rendering the UI state can include generating a data structure, e.g., an HTML-DOM (Hypertext Markup Language—Document Object Model) tree that represents the UI state.